/* * * Copyright (C) 2007-2015 Licensed to the Comunes Association (CA) under * one or more contributor license agreements (see COPYRIGHT for details). * The CA licenses this file to you under the GNU Affero General Public * License version 3, (the "License"); you may not use this file except in * compliance with the License. This file is part of kune. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ package cc.kune.sandbox.client; import java.util.Date; import org.gwtbootstrap3.client.ui.Anchor; import org.gwtbootstrap3.client.ui.AnchorListItem; import org.gwtbootstrap3.client.ui.Badge; import org.gwtbootstrap3.client.ui.Button; import org.gwtbootstrap3.client.ui.ButtonGroup; import org.gwtbootstrap3.client.ui.DropDown; import org.gwtbootstrap3.client.ui.DropDownMenu; import org.gwtbootstrap3.client.ui.Label; import org.gwtbootstrap3.client.ui.ListDropDown; import org.gwtbootstrap3.client.ui.Navbar; import org.gwtbootstrap3.client.ui.NavbarCollapse; import org.gwtbootstrap3.client.ui.NavbarCollapseButton; import org.gwtbootstrap3.client.ui.NavbarHeader; import org.gwtbootstrap3.client.ui.NavbarNav; import org.gwtbootstrap3.client.ui.base.button.CustomButton; import org.gwtbootstrap3.client.ui.constants.IconType; import org.gwtbootstrap3.client.ui.constants.NavbarPosition; import org.gwtbootstrap3.client.ui.constants.Toggle; import org.gwtbootstrap3.client.ui.html.Text; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.WhiteSpace; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.i18n.client.HasDirection.Direction; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.AbsolutePanel; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.IsWidget; import com.google.gwt.user.client.ui.RootLayoutPanel; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import br.com.rpa.client._paperelements.PaperFab; import br.com.rpa.client.api.widgets.paper.PaperButton; import cc.kune.bootstrap.client.ui.CheckListItem; import cc.kune.bootstrap.client.ui.ComplexAnchorListItem; import cc.kune.bootstrap.client.ui.ComplexDropDownMenu; import cc.kune.bootstrap.client.ui.DropDownSubmenu; import cc.kune.bootstrap.client.ui.RadioListItem; import cc.kune.common.client.actions.AbstractAction; import cc.kune.common.client.actions.AbstractExtendedAction; import cc.kune.common.client.actions.Action; import cc.kune.common.client.actions.ActionEvent; import cc.kune.common.client.actions.ActionStyles; import cc.kune.common.client.actions.BaseAction; import cc.kune.common.client.actions.KeyStroke; import cc.kune.common.client.actions.Shortcut; import cc.kune.common.client.actions.ui.ActionFlowPanel; import cc.kune.common.client.actions.ui.FlowActionExtensible; import cc.kune.common.client.actions.ui.descrip.ButtonDescriptor; import cc.kune.common.client.actions.ui.descrip.GuiActionDescCollection; import cc.kune.common.client.actions.ui.descrip.IconLabelDescriptor; import cc.kune.common.client.actions.ui.descrip.LabelDescriptor; import cc.kune.common.client.actions.ui.descrip.MenuCheckItemDescriptor; import cc.kune.common.client.actions.ui.descrip.MenuDescriptor; import cc.kune.common.client.actions.ui.descrip.MenuItemDescriptor; import cc.kune.common.client.actions.ui.descrip.MenuRadioItemDescriptor; import cc.kune.common.client.actions.ui.descrip.MenuSeparatorDescriptor; import cc.kune.common.client.actions.ui.descrip.MenuTitleItemDescriptor; import cc.kune.common.client.actions.ui.descrip.PushButtonDescriptor; import cc.kune.common.client.actions.ui.descrip.SubMenuDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarItemDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarMenuDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor; import cc.kune.common.client.actions.ui.descrip.ToolbarSeparatorDescriptor.Type; import cc.kune.common.client.actions.ui.descrip.WidgetMenuDescriptor; import cc.kune.common.client.notify.NotifyLevelImages; import cc.kune.common.client.notify.NotifyUser; import cc.kune.common.client.notify.SimpleUserMessage; import cc.kune.common.client.resources.CommonResources; import cc.kune.common.client.shortcuts.GlobalShortcutRegister; import cc.kune.common.client.tooltip.Tooltip; import cc.kune.common.client.ui.BasicThumb; import cc.kune.common.client.ui.BlinkAnimation; import cc.kune.common.client.ui.DottedTab; import cc.kune.common.client.ui.IconLabel; import cc.kune.common.client.ui.PopupTopPanel; import cc.kune.common.client.ui.WrappedFlowPanel; import cc.kune.common.client.ui.dialogs.BSBasicDialog; import cc.kune.common.client.ui.dialogs.BasicDialog; import cc.kune.common.client.ui.dialogs.BasicTopDialog; import cc.kune.common.client.ui.dialogs.MessagePanel; import cc.kune.common.client.utils.WindowUtils; import cc.kune.common.shared.i18n.I18n; import cc.kune.common.shared.res.KuneIcon; import cc.kune.common.shared.utils.LoremUtils; import cc.kune.common.shared.utils.SimpleResponseCallback; import cc.kune.common.shared.utils.TextUtils; import cc.kune.core.client.ui.UploaderPanel; import cc.kune.core.client.ui.dialogs.PromptTopDialog; import cc.kune.core.client.ui.dialogs.PromptTopDialog.Builder; import cc.kune.core.client.ui.dialogs.PromptTopDialog.OnEnter; /** * Entry point classes define <code>onModuleLoad()</code>. * * @author vjrj@ourproject.org (Vicente J. Ruiz Jurado) */ public class KuneSandboxEntryPoint implements EntryPoint { /** * The Class TestAction. * * @author vjrj@ourproject.org (Vicente J. Ruiz Jurado) */ public class TestAction extends AbstractExtendedAction { /** * Instantiates a new test action. * * @param text * the text */ public TestAction(final String text) { super(text); } /** * Instantiates a new test action. * * @param text * the text * @param tooltip * the tooltip * @param icon * the icon */ public TestAction(final String text, final String tooltip, final String icon) { super(text, tooltip, icon); } /* * (non-Javadoc) * * @see cc.kune.common.client.actions.ActionListener#actionPerformed(cc.kune * .common.client.actions.ActionEvent) */ @Override public void actionPerformed(final ActionEvent event) { // We test two types of dialogs if (((new Date().getTime()) & 1) == 0) { testDialog(); } else { testPromptDialog(); } } } /** The absolute panel. */ private AbsolutePanel absolutePanel; final AbstractExtendedAction action1 = new AbstractExtendedAction() { @Override public void actionPerformed(final ActionEvent event) { // final SimpleUserMessage simpleMes = new SimpleUserMessage(); // simpleMes.show("Hellow world!"); NotifyUser.showProgress("Savingggg"); NotifyUser.askConfirmation("Some title", "Some message", "Yeah!", "Nein", new SimpleResponseCallback() { @Override public void onCancel() { NotifyUser.error("Cancel"); } @Override public void onSuccess() { NotifyUser.info("Success"); } }); } }; final AbstractExtendedAction action2 = new AbstractExtendedAction() { @Override public void actionPerformed(final ActionEvent event) { final String title = "Some title"; final String message = "Lorem <a href='/'>ipsum</a> dolor sit amet, consectetuer adipiscing elit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit"; NotifyUser.showProgress("Saving......" + new Date().getTime()); NotifyUser.avatar("http://lorempixel.com/200/200", message, new ClickHandler() { @Override public void onClick(final ClickEvent event) { NotifyUser.info("On click"); } }); NotifyUser.error(title, message, true); NotifyUser.important(message); NotifyUser.info(message); NotifyUser.success(title, message); } }; /** The ginjector. */ private KuneSampleGinjector ginjector; private MainContainer mainContainer; /** The res. */ private CommonResources res; /** The shortcut register. */ private GlobalShortcutRegister shortcutRegister; /** The user msg. */ SimpleUserMessage userMsg = new SimpleUserMessage(); public void addNotifyUserTests(final FlowPanel flow) { flow.add(new CustomButton("Show progress", IconType.PLAY_CIRCLE, new ClickHandler() { @Override public void onClick(final ClickEvent event) { NotifyUser.showProgressLoading(); } })); flow.add(new CustomButton("Hide progress", IconType.STOP, new ClickHandler() { @Override public void onClick(final ClickEvent event) { NotifyUser.hideProgress(); } })); flow.add(new CustomButton("Show date", IconType.CLOCK_O, new ClickHandler() { @Override public void onClick(final ClickEvent event) { NotifyUser.showProgress("Date : " + new Date().getTime()); } })); flow.add(new CustomButton("Important message", IconType.WARNING, new ClickHandler() { @Override public void onClick(final ClickEvent event) { NotifyUser.important("Alert!"); } })); flow.add(new CustomButton("Error message", IconType.QUESTION_CIRCLE, new ClickHandler() { @Override public void onClick(final ClickEvent event) { NotifyUser.error("Title", "Error!", false); } })); } private void addSimpleActions(final FlowPanel flow) { final ButtonDescriptor button1 = new ButtonDescriptor("button desc 1", action1); final ButtonDescriptor button2 = new ButtonDescriptor("button desc 2 but bigger bigger", action2); final ButtonDescriptor button3 = new ButtonDescriptor(action1); button1.withIcon(res.info()).withToolTip("Some tooltip"); button2.withIcon(res.info()).withToolTip("Some tooltip"); button3.withIcon(IconType.TWITTER).withToolTip("Some tooltip"); // .withStyles("k-button,gwt-Button,k-btn-min"); final IconLabelDescriptor iconLabel = new IconLabelDescriptor("This does not work?"); iconLabel.setAction(action1); iconLabel.withText("Icon Label 1"); iconLabel.withIcon(KuneIcon.FOLDER); final FlowActionExtensible flowactions = new FlowActionExtensible(); flowactions.add(iconLabel, button1, button2, button3); flow.add(flowactions); } public void basicTests() { // final Growl growl = UserNotifierGrowl.showProgress("Loading..."); NotifyUser.showProgress("Starting..."); testTooltips(); // absolutePanel.add(testActionToolbar(), 200, 200); final String defLocale = "en"; final String locale = WindowUtils.getParameter("locale"); final String[] ids = new String[] { "summary", "ini", "footer", "kuneloading-msg" }; for (final String id : ids) { final RootPanel someId = RootPanel.get("k-home-" + id + "-" + locale); final RootPanel defId = RootPanel.get("k-home-" + id + "-" + defLocale); if (someId != null) { someId.setVisible(true); } else if (defId != null) { defId.setVisible(true); } } // testToolpanel(); // toolSelector.addWidget(new Label("Test")); // testPromptDialog(); testSubWidget(); final ActionFlowPanel view = makeFlowToolbar(); final BasicThumb thumb = testThumbs(); absolutePanel.add(thumb, 200, 10); absolutePanel.add(view, 5, 150); final DottedTab tab = new DottedTab(); absolutePanel.add(tab, 400, 400); absolutePanel.add(tab, 400, 400); absolutePanel.add(makeFileUpload(), 520, 0); // absolutePanel.add(new InboxTutorial(), 0, 300); new BlinkAnimation(tab, 350).animate(5); RootPanel.get().add(absolutePanel); } public void completeTests() { NotifyUser.info("Started"); final Navbar simpleNavbar = new Navbar(); final NavbarHeader header = new NavbarHeader(); final NavbarCollapseButton navbarCollapseButton = new NavbarCollapseButton(); navbarCollapseButton.setDataTarget("#test"); header.add(navbarCollapseButton); simpleNavbar.add(header); final NavbarCollapse navbarCollapse = new NavbarCollapse(); navbarCollapse.setId("test"); simpleNavbar.add(navbarCollapse); final NavbarNav navbarNav = new NavbarNav(); final ComplexDropDownMenu<ListDropDown> listDropDown = new ComplexDropDownMenu<ListDropDown>( new ListDropDown()); listDropDown.setMenuText("Plain menu"); listDropDown.setIcon(IconType.GEAR); navbarCollapse.add(navbarNav); navbarNav.add(listDropDown.getWidget()); final AnchorListItem simpleAnchor = new AnchorListItem("Anchor 1"); simpleAnchor.setIcon(IconType.TWITTER_SQUARE); navbarNav.add(simpleAnchor); navbarNav.add(new AnchorListItem("Anchor 2")); navbarNav.add(new AnchorListItem("Anchor 3")); final AnchorListItem menuitem1 = new AnchorListItem("Anchor menuitem 1"); menuitem1.setIcon(IconType.RANDOM); listDropDown.add(menuitem1); final CheckListItem checkitem = new CheckListItem("Check item"); checkitem.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { checkitem.setChecked(!checkitem.isChecked()); } }); listDropDown.add(checkitem); final RadioListItem radioitem = new RadioListItem("Check item"); radioitem.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { radioitem.setChecked(!radioitem.isChecked()); } }); listDropDown.add(radioitem); final CheckListItem checkitem2 = new CheckListItem("Check anchor"); checkitem2.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { checkitem2.setChecked(!checkitem2.isChecked()); } }); navbarNav.add(checkitem2); listDropDown.add(new AnchorListItem("Anchor menuitem 2")); final ComplexAnchorListItem menuitem3 = new ComplexAnchorListItem("Anchor menuitem 3"); menuitem3.setIconUrl("http://lorempixel.com/100/100"); listDropDown.add(menuitem3); final AnchorListItem item1 = new AnchorListItem("Testingggg"); item1.setIcon(IconType.HEART); listDropDown.add(item1); for (int i = 1; i < 50; i++) { listDropDown.add(new AnchorListItem("Anchor " + i)); } final ComplexAnchorListItem itemSubmenu = new ComplexAnchorListItem("Testing submenu"); itemSubmenu.setIcon(KuneIcon.FOLDER); final DropDownSubmenu submenu = new DropDownSubmenu(); submenu.add(new AnchorListItem("sub item 1")); submenu.add(new AnchorListItem("sub item 2")); submenu.add(new AnchorListItem("sub item 3")); itemSubmenu.add(submenu); listDropDown.add(itemSubmenu); final DropDown dropDown = new DropDown(); final Anchor dropDownAnchor = new Anchor(); // FIXME This fails: // final BasicThumb thumb = testThumbs(); final Image thumb = new Image("http://lorempixel.com/30/30"); dropDownAnchor.add(thumb); dropDownAnchor.setDataToggle(Toggle.DROPDOWN); dropDown.add(dropDownAnchor); final DropDownMenu dropDownMenu = new DropDownMenu(); dropDown.add(dropDownMenu); final ComplexAnchorListItem dditem1 = new ComplexAnchorListItem("Test 1"); final ComplexAnchorListItem dditem2 = new ComplexAnchorListItem("Test 2"); dditem1.setIcon(KuneIcon.BARTER); dditem2.setIconUrl("http://lorempixel.com/101/101"); dropDownMenu.add(dditem1); dropDownMenu.add(dditem2); // The same with descriptors final Image thumb2 = new Image("http://lorempixel.com/30/30"); final WidgetMenuDescriptor widgetMenu = new WidgetMenuDescriptor(thumb2); new MenuItemDescriptor(widgetMenu, new BaseAction("Menuitem desc in widget 1", "Some tooltip")); new MenuItemDescriptor(widgetMenu, new BaseAction("Menuitem desc in widget 2", "Some tooltip")); // Now with a button final MenuDescriptor classicMenu = new MenuDescriptor("Button classic menu"); classicMenu.withIcon("http://lorempixel.com/30/30"); new MenuItemDescriptor(classicMenu, new BaseAction("Menuitem desc in widget 1", "Some tooltip")); new MenuItemDescriptor(classicMenu, new BaseAction("Menuitem desc in widget 2", "Some tooltip")); final MenuDescriptor classicMenu2 = new MenuDescriptor("Button classic2 menu"); classicMenu2.withIcon("http://lorempixel.com/30/30"); new MenuItemDescriptor(classicMenu2, new BaseAction("Menuitem desc in widget 3", "Some tooltip")); new MenuItemDescriptor(classicMenu2, new BaseAction("Menuitem desc in widget 4", "Some tooltip")); final CustomButton btn = new CustomButton("Text custom button"); Tooltip.to(btn, "Show the dropdown at 100,100 position (or hide it)"); btn.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { if (listDropDown.isMenuVisible()) { listDropDown.hide(); } else { listDropDown.show(100, 100); } } }); btn.setIcon(KuneIcon.FOLDER); // final cc.kune.bootstrap.client.ui.IconLabel iconLabel = new // cc.kune.bootstrap.client.ui.IconLabel( // "Text"); // iconLabel.setIcon(new KuneIcon('g')); final FlowPanel flow = mainContainer.getFlow(); flow.insert(btn, 0); flow.insert(new HTML("<br>"), 1); flow.insert(dropDown, 2); flow.insert(new HTML("<br>"), 3); final ToolbarDescriptor bottomToolbar = new ToolbarDescriptor(); bottomToolbar.setPosition(NavbarPosition.FIXED_BOTTOM); final ButtonDescriptor btnDesc = new ButtonDescriptor(new TestAction("Button desc")); btnDesc.withIcon(KuneIcon.SETTINGS).withToolTip("Show me a tooltip"); btnDesc.setParent(bottomToolbar); final IconLabelDescriptor labelDesc = new IconLabelDescriptor(new TestAction("IconLabel desc")); labelDesc.withIcon(KuneIcon.TASKS).withToolTip("Show me a tooltip"); labelDesc.setParent(bottomToolbar); final MenuDescriptor menu = new MenuDescriptor("Menu btn"); menu.setParent(bottomToolbar); final MenuItemDescriptor menuItemDescriptor = new MenuItemDescriptor(menu, new TestAction("Menu item")); menuItemDescriptor.withIcon(IconType.MAGIC); final SubMenuDescriptor submenuDesc = new SubMenuDescriptor(menu, "Some submenu"); submenuDesc.withIcon(KuneIcon.BARTER); new MenuItemDescriptor(submenuDesc, new TestAction("Submenu item 1")).withIcon(IconType.FACEBOOK); new MenuItemDescriptor(submenuDesc, new TestAction("Submenu item 2")).withIcon( IconType.FAST_BACKWARD); // TODO Add more tests here final FlowActionExtensible sitebar = new FlowActionExtensible(); sitebar.add(createSitebarActions()); final FlowActionExtensible bottombar = new FlowActionExtensible(); bottombar.add(bottomToolbar); // RootPanel.get().add(testActionToolbar()); final FlowActionExtensible mainFlow = new FlowActionExtensible(); mainFlow.add(widgetMenu, classicMenu, classicMenu2); final PaperFab paperFab = new PaperFab(); paperFab.setIcon("polymer"); mainContainer.getSitebar().add(sitebar); mainContainer.getFooter().add(bottombar); mainContainer.getFooter().add(paperFab); final PaperButton paperBtn = new PaperButton(); mainContainer.getFooter().add(paperBtn); flow.add(mainFlow); flow.insert(simpleNavbar, 0); testBarButtons(flow); addNotifyUserTests(flow); addSimpleActions(flow); flow.add(new Text(LoremUtils.LOREM_MULTI + LoremUtils.LOREM_MULTI)); RootLayoutPanel.get().add(mainContainer); } /** * Test action toolbar. * * @return */ @SuppressWarnings("unused") public ToolbarDescriptor createSitebarActions() { final ToolbarDescriptor sitebarDesc = new ToolbarDescriptor(); final ToolbarItemDescriptor anchorItem = new ToolbarItemDescriptor(); anchorItem.setAction(new AbstractExtendedAction("Item descr") { @Override public void actionPerformed(final ActionEvent event) { mainContainer.next(); } }); anchorItem.withStyles(ActionStyles.CURRENT_TOOLBAR_ITEM); sitebarDesc.setPosition(NavbarPosition.FIXED_TOP); anchorItem.withIcon(KuneIcon.KUNE); anchorItem.setParent(sitebarDesc); final KeyStroke shortcut1 = Shortcut.getShortcut(false, true, false, false, Character.valueOf('C')); shortcutRegister.put(shortcut1, action1); final KeyStroke shortcut2 = Shortcut.getShortcut(false, true, false, false, Character.valueOf('D')); shortcutRegister.put(shortcut2, action2); final ToolbarMenuDescriptor menuDesc = new ToolbarMenuDescriptor("Menu descr"); final ToolbarMenuDescriptor menuDesc2 = new ToolbarMenuDescriptor("Menu descr 2"); menuDesc.setParent(sitebarDesc); menuDesc.withIcon(KuneIcon.GROUP); final ToolbarSeparatorDescriptor separator = new ToolbarSeparatorDescriptor(Type.separator, sitebarDesc); menuDesc2.setParent(sitebarDesc); menuDesc2.withIcon(KuneIcon.CHAT); new ToolbarSeparatorDescriptor(Type.fill, sitebarDesc); final ToolbarMenuDescriptor moreItem = new ToolbarMenuDescriptor("More"); moreItem.withParent(sitebarDesc).withIcon(IconType.NAVICON); final MenuItemDescriptor kunemenuitem = new MenuItemDescriptor(moreItem, action1); kunemenuitem.withIcon(KuneIcon.KUNE).withText("About kune"); menuDesc.withToolTip("Some menu tooltip").withShortcut(shortcut1, shortcutRegister); final MenuItemDescriptor menuItem1 = new MenuItemDescriptor(menuDesc, new AbstractAction() { @Override public void actionPerformed(final ActionEvent event) { NotifyUser.success("Setting separator visibility to false"); separator.setVisible(false); } }); menuItem1.withIcon(res.locationBlack()).withText("Some menu item 1"); final MenuItemDescriptor menuItem2 = new MenuItemDescriptor(menuDesc, action1); menuItem2.withIcon(res.info()).withText("Some menu item 2").withShortcut(shortcut2, shortcutRegister); final MenuItemDescriptor menuItem3 = new MenuItemDescriptor(menuDesc2, action1); menuItem3.withIcon(res.locationBlack()).withText("Some other menu item 1"); final MenuItemDescriptor menuItem4 = new MenuItemDescriptor(menuDesc2, action1); menuItem4.withIcon(res.info()).withText("Some other menu item 2").withShortcut(shortcut2, shortcutRegister); final MenuCheckItemDescriptor menuCheckItem1 = new MenuCheckItemDescriptor(menuDesc, action1); menuCheckItem1.withText("Check item"); final SubMenuDescriptor submenuDesc = new SubMenuDescriptor("Some Submenu", "tip", "oc-testico"); submenuDesc.setParent(menuDesc); final TestAction action3 = new TestAction("Some menu item 3", "Some tooltip", "oc-testico"); final TestAction action4 = new TestAction("Action 4"); final MenuSeparatorDescriptor menuSep = new MenuSeparatorDescriptor(menuDesc); final MenuItemDescriptor menuHeaderItem = new MenuTitleItemDescriptor(menuDesc, "Header"); final MenuItemDescriptor menuItemDesc1 = new MenuItemDescriptor(menuDesc, action3); final MenuItemDescriptor menuItemDesc2 = new MenuItemDescriptor(menuDesc, action4); final MenuRadioItemDescriptor menuItemDesc3 = new MenuRadioItemDescriptor(submenuDesc, action1, "somegroup"); menuItemDesc3.withText("This text is setted").withShortcut(shortcut1, shortcutRegister); final MenuRadioItemDescriptor menuItemDesc4 = new MenuRadioItemDescriptor(submenuDesc, action2, "somegroup"); menuItemDesc4.withText("This text is setted").withShortcut(shortcut2, shortcutRegister); return sitebarDesc; } private void initializeInjector() { GWT.setUncaughtExceptionHandler(new SuperDevModeUncaughtExceptionHandler()); ginjector = GWT.create(KuneSampleGinjector.class); res = CommonResources.INSTANCE; res.commonStyle().ensureInjected(); ginjector.getUserNotifierGrowl(); absolutePanel = new AbsolutePanel(); shortcutRegister = ginjector.getGlobalShortcutRegister(); shortcutRegister.enable(); mainContainer = new MainContainer(); } private Widget makeFileUpload() { final UploaderPanel uploadPanel = new UploaderPanel(I18n.t("choose an image to upload"), "image/png,image/gif,image/jpeg"); uploadPanel.setSize("250px", "150px"); return uploadPanel; } /** * Make flow toolbar. * * @return the action flow panel */ private ActionFlowPanel makeFlowToolbar() { final GuiActionDescCollection actions = new GuiActionDescCollection(); final TestAction action = new TestAction("Action 1"); action.withToolTip("Some tooltip").withIcon(res.chainClosedGrey()); final TestAction action2 = new TestAction("Some action 2"); action2.withIcon("mail"); final KeyStroke shortcut = Shortcut.getShortcut(false, true, false, false, Character.valueOf('C')); shortcutRegister.put(shortcut, action); final KeyStroke shortcut2 = Shortcut.getShortcut(false, true, false, false, Character.valueOf('D')); shortcutRegister.put(shortcut2, action2); final ButtonDescriptor simpleBtn = new ButtonDescriptor(action); // Same action but different text simpleBtn.putValue(Action.NAME, "Action 1 diff name"); final ButtonDescriptor iconBtn = new ButtonDescriptor(new AbstractExtendedAction() { @Override public void actionPerformed(final ActionEvent event) { NotifyUser.info("Click!"); } }); iconBtn.withIcon("polymer"); // Same action but different text simpleBtn.putValue(Action.NAME, "Action 1 diff name"); final PushButtonDescriptor pushBtn = new PushButtonDescriptor(action2); pushBtn.setPushed(true); pushBtn.withText("Push btn"); final ToolbarDescriptor toolbar = new ToolbarDescriptor(); final ToolbarSeparatorDescriptor tsepFill = new ToolbarSeparatorDescriptor(Type.fill, toolbar); final ToolbarSeparatorDescriptor toolbarSpace = new ToolbarSeparatorDescriptor(Type.spacer, toolbar); simpleBtn.setParent(toolbar); pushBtn.setParent(toolbar); final MenuDescriptor menu = new MenuDescriptor(action); menu.withText("Menu 1").withIcon("http://lorempixel.com/100/100"); final MenuDescriptor menu2 = new MenuDescriptor(action); menu2.withText("Menu 2").withIcon(IconType.TREE); menu.setParent(toolbar); final SubMenuDescriptor submenu = new SubMenuDescriptor("Some Submenu", "tip", "oc-testico"); submenu.setParent(menu); final MenuSeparatorDescriptor menuSep = new MenuSeparatorDescriptor(menu); final TestAction action3 = new TestAction("Action 3", "Some tooltip", "oc-testico"); final TestAction action4 = new TestAction("Action 4"); final MenuItemDescriptor menuItem = new MenuItemDescriptor(menu, action3); final MenuItemDescriptor menuItem2 = new MenuItemDescriptor(menu, action4); final MenuItemDescriptor menuItem3 = new MenuItemDescriptor(submenu, action); final MenuItemDescriptor menuItem4 = new MenuItemDescriptor(submenu, action2); menuItem4.withText("Submenu item 2"); final IconLabelDescriptor iconLabelDescr = new IconLabelDescriptor(action); final IconLabelDescriptor iconLabelNoAct = new IconLabelDescriptor(action4); final MenuItemDescriptor menuItem5 = new MenuItemDescriptor(menu2, action); action.setShortcut(shortcut); action2.setShortcut(shortcut2); final LabelDescriptor label = new LabelDescriptor("Some label"); actions.add(toolbar, simpleBtn, tsepFill, pushBtn, iconBtn, toolbarSpace, menu, tsepFill, menuItem, menuItem2, menuSep, menuItem2, menuItem, iconLabelDescr, submenu, menuItem3, menuItem4, menu2, iconLabelNoAct, menuItem5, label); final ActionFlowPanel view = new ActionFlowPanel(ginjector.getGuiProvider(), ginjector.getHasRTL()); view.addAll(actions); final IconLabel simpleIconLabel = new IconLabel("IconLabel (no action)"); simpleIconLabel.setRightIcon("oc-testico"); simpleIconLabel.setTitle("tooltip"); final VerticalPanel panel = new VerticalPanel(); panel.setWidth("100%"); panel.add(view); panel.add(simpleIconLabel); return view; } @Override public void onModuleLoad() { initializeInjector(); basicTests(); // completeTests(); } public void onModuleLoadPolymer() { initializeInjector(); NotifyUser.info("Started"); final WrappedFlowPanel docContent = WrappedFlowPanel.wrap("doc_content"); final CustomButton btn = new CustomButton("Sign in"); btn.setIcon(KuneIcon.KUNE); btn.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { NotifyUser.info("Tested"); } }); docContent.insert(btn, 0); final PaperFab fab = PaperFab.wrap(DOM.getElementById("edit_fab")); fab.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { NotifyUser.success("New message"); } }); final Badge inboxBadge = new Badge(); final Badge chatsBadge = new Badge(); inboxBadge.setText("99"); chatsBadge.setText("9"); // PolymerUtils.wrap(PolymerId.CHAT_SITEBAR_ICON_GROUP).add(inboxBadge); // PolymerUtils.wrapDiv("sitebar_chat_icon_group").add(chatsBadge); inboxBadge.addStyleName("btn_green"); chatsBadge.addStyleName("btn_green"); inboxBadge.addStyleName("sitebar_inbox_badge"); chatsBadge.addStyleName("sitebar_chats_badge"); NotifyUser.hideProgress(); } /** * Test bar buttons. */ private void testBarButtons(final FlowPanel flow) { final Button btn1 = new Button("Btn 1"); final Button btn2 = new Button("Btn 2"); final Button btn3 = new Button("Btn 3"); final ButtonGroup buttonGroup = new ButtonGroup(); buttonGroup.add(btn1); buttonGroup.add(btn2); buttonGroup.add(btn3); flow.add(buttonGroup); } /** * Test dialogs. */ private void testDialog() { final cc.kune.common.client.ui.dialogs.BasicTopDialog.Builder builder = new BasicTopDialog.Builder( "dialogId", true, true, Direction.DEFAULT); final BSBasicDialog dialog = builder.build(); dialog.getTitleText().setText("Title"); dialog.setFirstBtnText("Accept"); dialog.setSecondBtnText("Cancel"); dialog.getMainPanel().add(new Image("http://lorempixel.com/600/400")); dialog.getBottomPanel().add(new Image("http://lorempixel.com/40/40")); dialog.show(); } @SuppressWarnings("unused") private void testOldDialog() { final PopupTopPanel pop2 = new PopupTopPanel(false, true); pop2.setGlassEnabled(true); final BasicDialog dialog = new BasicDialog(); pop2.add(dialog); dialog.getTitleText().setText("Title"); dialog.setFirstBtnText("Accept"); dialog.setSecondBtnText("Cancel"); dialog.setFirstBtnTabIndex(2); dialog.setSecondBtnTabIndex(3); final ClickHandler clickHandler = new ClickHandler() { @Override public void onClick(final ClickEvent event) { pop2.hide(); } }; dialog.getFirstBtn().addClickHandler(clickHandler); dialog.getSecondBtn().addClickHandler(clickHandler); final VerticalPanel sPanel = new VerticalPanel(); sPanel.add(new Label("Someother thing")); final Button btn = new Button("Something"); btn.setTabIndex(1); btn.setFocus(true); sPanel.add(btn); sPanel.setSize("300px", "150px"); dialog.getInnerPanel().add((IsWidget) sPanel); final Label label = new Label("Test label"); final NotifyLevelImages levelImg = new NotifyLevelImages(CommonResources.INSTANCE); // GWT.create(NotifyLevelImages.class); dialog.getBottomPanel().add(new MessagePanel(levelImg, "some message")); // final MaskWidget mask = new MaskWidget(); absolutePanel.add(label, 130, 130); pop2.showNear(label); // DOM.setStyleAttribute(pop.getElement(), "zIndex", "10000"); // mask.mask(pop2, "JAarrrrr!"); } private void testPromptDialog() { final Builder builder = new PromptTopDialog.Builder("kkj-kk", "Some ask text?", false, true, Direction.LTR, new OnEnter() { @Override public void onEnter() { NotifyUser.info("On Enter"); } }); builder.width("200px").height("200px").firstButtonTitle("Create").sndButtonTitle("Cancel"); builder.regex(TextUtils.UNIX_NAME).regexText( "The name must contain only characters, numbers and dashes"); final PromptTopDialog diag = builder.build(); diag.showCentered(); diag.focusOnTextBox(); diag.getFirstBtn().addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { Window.alert("ok"); } }); } // // private void testToolpanel() { // ToolSelectorPanel toolSelector = new ToolSelectorPanel(new // GSpaceArmorImpl(null), null); // ToolSelectorItemPanel toolItem1 = new ToolSelectorItemPanel(); // toolItem1.getLabel().setText("documents"); // ToolSelectorItemPanel toolItem2 = new ToolSelectorItemPanel(); // toolItem2.getLabel().setText("something very longgggggg"); // ToolSelectorItemPanel toolItem3 = new ToolSelectorItemPanel(); // toolItem3.getLabel().setText("media"); // toolSelector.addItem(toolItem1); // toolSelector.addItem(toolItem2); // toolSelector.addItem(toolItem3); // toolItem1.setSelected(true); // toolItem2.setSelected(false); // toolItem3.setSelected(false); // toolSelector.asWidget().setWidth("200px"); // RootPanel.get().add(toolSelector.asWidget()); // } // /** * Test sub widget. */ private void testSubWidget() { // String title = new String("Some big title áéíóú!"); // String bTitle = Base64Utils.toBase64(title.getBytes()); // String descr = new String("Some big description áéíóú"); // String bDescr = Base64Utils.toBase64(descr.getBytes()); // // final SubtitlesWidget sub = new SubtitlesWidget(); // // sub.setTitleText(new String(Base64Utils.fromBase64(bTitle))); // sub.setDescription(new String(Base64Utils.fromBase64(bDescr))); // sub.setSize(Window.getClientWidth() + "px", Window.getClientHeight() // + // "px"); // Button btn = new Button("Click me"); // btn.addClickHandler(new ClickHandler() { // @Override // public void onClick(ClickEvent event) { // // sub.show(); // } // }); // RootPanel.get().add(btn); // RootPanel.get().add(sub); } /** * Test thumbs. * * @return the basic thumb */ private BasicThumb testThumbs() { final BasicThumb thumb = new BasicThumb("http://kune.cc/ws/images/unknown.jpg", 60, "fooo", 5, false, new ClickHandler() { @Override public void onClick(final ClickEvent event) { userMsg.show("Testing"); } }); thumb.setTooltip("Some thumb tooltip"); thumb.setOnOverLabel(true); return thumb; } // /** * Test tooltips. */ private void testTooltips() { final Button button = new Button("Btn 1 biiggggggg"); final Button button2 = new Button("Btn 2 also biggggg"); button2.getElement().getStyle().setWhiteSpace(WhiteSpace.NORMAL); final IconLabel button3 = new IconLabel(res.info(), "Btn 3"); final Button button4 = new Button("Btn 4"); final int clientWidth = Window.getClientWidth(); final int clientHeight = Window.getClientHeight(); absolutePanel.setSize(String.valueOf(clientWidth - 10) + "px", String.valueOf(clientHeight - 10) + "px"); absolutePanel.add(button, 5, 5); absolutePanel.add(button2, clientWidth - 90, 5); absolutePanel.add(button3, 5, clientHeight - 50); absolutePanel.add(button4, clientWidth - 90, clientHeight - 60); Tooltip.to(button, "Some tooltip, Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec vitae eros. "); Tooltip.to(button2, "Some tooltip, Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec vitae eros. "); Tooltip.to(button3, "Some tooltip, Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec vitae eros. "); Tooltip.to(button4, "Some tooltip, Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec vitae eros. "); } }